n,k=map(int,input().split())
a=list(map(int,input().split()))
b={}
for i in range(n):
b[a[i]]=i+1
if len(b)==k:break
if len(b)==k:
print(min(b.values()),max(b.values()))
else:
print(-1,-1)
#include <cstdio>
#include <vector>
#include <map>
int main(){
long n, k; scanf("%ld %ld", &n, &k);
std::vector<long> a(n); for(long p = 0; p < n; p++){scanf("%ld", &a[p]);}
std::map<long, long> m;
long r(0);
for(r = 0; r < n; r++){
if(m.count(a[r])){++m[a[r]];}
else{m[a[r]] = 1;}
if(m.size() >= k){break;}
}
long l(0);
while(l <= r){
if(m.count(a[l]) && m[a[l]] > 1){--m[a[l]]; ++l;}
else{break;}
}
if(m.size() < k){l = r = -2;}
printf("%ld %ld\n", l + 1, r + 1);
return 0;
}
983. Minimum Cost For Tickets | 973. K Closest Points to Origin |
969. Pancake Sorting | 967. Numbers With Same Consecutive Differences |
957. Prison Cells After N Days | 946. Validate Stack Sequences |
921. Minimum Add to Make Parentheses Valid | 881. Boats to Save People |
497. Random Point in Non-overlapping Rectangles | 528. Random Pick with Weight |
470. Implement Rand10() Using Rand7() | 866. Prime Palindrome |
1516A - Tit for Tat | 622. Design Circular Queue |
814. Binary Tree Pruning | 791. Custom Sort String |
787. Cheapest Flights Within K Stops | 779. K-th Symbol in Grammar |
701. Insert into a Binary Search Tree | 429. N-ary Tree Level Order Traversal |
739. Daily Temperatures | 647. Palindromic Substrings |
583. Delete Operation for Two Strings | 518. Coin Change 2 |
516. Longest Palindromic Subsequence | 468. Validate IP Address |
450. Delete Node in a BST | 445. Add Two Numbers II |
442. Find All Duplicates in an Array | 437. Path Sum III |